1. Field of the Invention
The present invention relates to a storage control apparatus, and a method for controlling the number of commands executed in the storage control apparatus.
2. Description of the Related Art
A storage control apparatus, for example, is constituted by arranging a large number of disk drives in an array, and provides a storage area based on RAID (Redundant Array of Independent Disks). A logical volume, which is a logical storage area, is formed in the physical storage area of each disk drive. A host computer (hereinafter, host) can read and write data between desired volumes by issuing a write command or read command to the storage control apparatus.
A storage control apparatus comprises a plurality of communication ports, and each of these communication ports can be connected to either respectively different hosts or to the same host. In addition, a single communication port can also be connected to a plurality of hosts by connecting the storage control apparatus and hosts via a switch.
Each host can issue multiple commands. The issuing of multiple commands means a host consecutively issues a plurality of commands without waiting for a response from a storage control apparatus. The number of commands that a storage control apparatus can process simultaneously depends on the amount of command processing resources that the storage control apparatus possesses. When the number of commands issued by a host exceeds the number of commands capable of being processed by a storage control apparatus, a QueueFull state results. When a storage control apparatus notifies a host to the extent that a QueueFull state exists, the host stops issuing multiple commands, causing performance to deteriorate.
To prevent the occurrence of a QueueFull state, a constitution, which provides a storage control apparatus with more command processing resources, can be considered. However, this approach is not a realistic solution, as it would require that a great deal of memory resources, hardware circuitry and other such command processing resources be provided in large numbers. Accordingly, technology designed to prevent the occurrence of a QueueFull state without adding command processing resources has been proposed (Japan Laid-open Patent No. 2005-322181).
In the prior art disclosed in this literature, a total value for the number of multiple commands (the number of multiple commands capable of being issued) is set in each host, and this total value controls access from each host so as not to exceed the number of commands capable of being processed by a storage control apparatus. In the prior art, this prevents the occurrence of a QueueFull state.
In the prior art disclosed in this literature, a number of multiple commands must be set in each host so that the number of commands does not exceed the processing capabilities of a storage command system. When the set number of multiple commands is to be changed, the host must be stopped before the new number of multiple commands is set, and then the host must be restarted. Therefore, in the prior art, the number of multiple commands setting cannot be changed in a state wherein a host application program continues to run as-is. For this reason, in the prior art disclosed in the above-mentioned literature, a number of multiple commands setting cannot be changed, and a host cannot be added without stopping a host, resulting in low usability.
In response to this, if the number of multiple commands of the host side is not adjusted to the number of commands capable of being processed by a storage control apparatus, the storage control apparatus notifies the hosts of the number of commands capable of being processed. Therefore, the total number of processable commands notified to the respective hosts will be higher than the actual number of commands capable of being processed. As a result, the storage control apparatus will receive commands in excess of the number of commands it is capable of processing, resulting in frequent QueueFull states, and inviting performance degradation.